perm filename GEOMES.HDR[GEM,HE]6 blob
sn#098474 filedate 1974-04-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00010 00003 EXTERNAL DECLARATIONS FOR DISPLAY ROUTINES
C00012 00004 GEM-NODE NAMES FOR LINKS AND DATA
C00014 00005
C00016 ENDMK
C⊗;
REQUIRE "GEOMED.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "GEMSUB.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "MEMIO.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "EULER.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "EUCLID.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "VIEWER.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "OCCULT.REL[GEM,HE]" LOAD_MODULE;
REQUIRE "BIN.REL[GEM,HE]" LOAD_MODULE;
COMMENT BASIC GEOMED, IO AND DISPLAY;
EXTERNAL SIMPLE PROCEDURE MKUNIV;
EXTERNAL SIMPLE PROCEDURE GEOMED;
EXTERNAL SIMPLE PROCEDURE GEODPY;
EXTERNAL SIMPLE PROCEDURE SHOW1(INTEGER WINDOW,GLASS);
EXTERNAL SIMPLE PROCEDURE SHOW2(INTEGER WINDOW,GLASS);
EXTERNAL SIMPLE INTEGER PROCEDURE INGEM(STRING FILNAM);
EXTERNAL SIMPLE INTEGER PROCEDURE INB3D(STRING FILNAM);
EXTERNAL SIMPLE INTEGER PROCEDURE INCAM(STRING FILNAM);
EXTERNAL SIMPLE INTEGER PROCEDURE OUTGEM(STRING FILNAM;INTEGER B);
EXTERNAL SIMPLE INTEGER PROCEDURE OUTB3D(STRING FILNAM;INTEGER B);
EXTERNAL SIMPLE INTEGER PROCEDURE OUTCAM(STRING FILNAM;INTEGER B);
COMMENT ARITH;
EXTERNAL SIMPLE REAL PROCEDURE SQRT (REAL X);
EXTERNAL SIMPLE REAL PROCEDURE SIN (REAL X);
EXTERNAL SIMPLE REAL PROCEDURE COS (REAL X);
EXTERNAL SIMPLE REAL PROCEDURE ATAN2(REAL Y,X);
COMMENT EUCLID;
EXTERNAL SIMPLE INTEGER PROCEDURE TRANSL(INTEGER Q;REAL X,Y,Z);
EXTERNAL SIMPLE INTEGER PROCEDURE ROTATE(INTEGER Q;REAL X,Y,Z);
EXTERNAL SIMPLE INTEGER PROCEDURE SHRINK(INTEGER Q;REAL X,Y,Z);
EXTERNAL SIMPLE INTEGER PROCEDURE APTRAN(INTEGER Q,ET);
EXTERNAL SIMPLE INTEGER PROCEDURE INTRAN(INTEGER ET);
EXTERNAL SIMPLE REAL PROCEDURE DISTAN(INTEGER Q1,Q2);
COMMENT WINGED EDGE PRIMITIVES;
EXTERNAL SIMPLE INTEGER PROCEDURE MKNODE(INTEGER TYP);
EXTERNAL SIMPLE INTEGER PROCEDURE KLNODE(INTEGER NODE);
EXTERNAL SIMPLE INTEGER PROCEDURE MKWORLD;
EXTERNAL SIMPLE INTEGER PROCEDURE MKCAMERA(INTEGER WORLD);
EXTERNAL SIMPLE INTEGER PROCEDURE MKWINDOW(INTEGER CAMERA,WINDOW);
EXTERNAL SIMPLE INTEGER PROCEDURE MKB(INTEGER WORLD);
EXTERNAL SIMPLE INTEGER PROCEDURE KLB(INTEGER BNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE KLBFEV(INTEGER BNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE MKF(INTEGER FNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE MKE(INTEGER ENEW);
EXTERNAL SIMPLE INTEGER PROCEDURE MKV(INTEGER VNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE KLF(INTEGER FNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE KLE(INTEGER ENEW);
EXTERNAL SIMPLE INTEGER PROCEDURE KLV(INTEGER VNEW);
EXTERNAL SIMPLE INTEGER PROCEDURE WING(INTEGER E1,E2);
EXTERNAL SIMPLE INTEGER PROCEDURE LINKED(INTEGER Q1,Q2);
EXTERNAL SIMPLE INTEGER PROCEDURE ECW(INTEGER Q1,Q2);
EXTERNAL SIMPLE INTEGER PROCEDURE ECCW(INTEGER Q1,Q2);
EXTERNAL SIMPLE INTEGER PROCEDURE OTHER(INTEGER Q1,Q2);
EXTERNAL SIMPLE INTEGER PROCEDURE VCW(INTEGER E,F);
EXTERNAL SIMPLE INTEGER PROCEDURE VCCW(INTEGER E,F);
EXTERNAL SIMPLE INTEGER PROCEDURE FCW(INTEGER E,V);
EXTERNAL SIMPLE INTEGER PROCEDURE FCCW(INTEGER E,V);
EXTERNAL SIMPLE INTEGER PROCEDURE BGET(INTEGER Q);
EXTERNAL SIMPLE INTEGER PROCEDURE BDET(INTEGER Q);
EXTERNAL SIMPLE INTEGER PROCEDURE BATT(INTEGER Q1,Q2);
COMMENT EULER PRIMITIVES;
EXTERNAL SIMPLE INTEGER PROCEDURE INVERT(INTEGER E);
EXTERNAL SIMPLE INTEGER PROCEDURE EVERT(INTEGER B);
EXTERNAL SIMPLE INTEGER PROCEDURE MKEV(INTEGER F,V);
EXTERNAL SIMPLE INTEGER PROCEDURE MKFE(INTEGER V1,F,V2);
EXTERNAL SIMPLE INTEGER PROCEDURE ESPLIT(INTEGER E);
EXTERNAL SIMPLE INTEGER PROCEDURE KLFE(INTEGER E);
EXTERNAL SIMPLE INTEGER PROCEDURE KLEV(INTEGER V);
EXTERNAL SIMPLE INTEGER PROCEDURE KLVE(INTEGER E);
EXTERNAL SIMPLE INTEGER PROCEDURE MKCOPY(INTEGER B);
EXTERNAL SIMPLE INTEGER PROCEDURE GLUE(INTEGER F1,F2);
EXTERNAL SIMPLE INTEGER PROCEDURE GLUEE(INTEGER F1,V1,F2,V2);
EXTERNAL SIMPLE INTEGER PROCEDURE SWEEP(INTEGER F,FLG);
EXTERNAL SIMPLE INTEGER PROCEDURE ROTCOM(INTEGER F);
EXTERNAL SIMPLE INTEGER PROCEDURE PYRAMID(INTEGER FV);
EXTERNAL SIMPLE INTEGER PROCEDURE REMOVF(INTEGER F);
EXTERNAL SIMPLE INTEGER PROCEDURE FVDUAL(INTEGER B);
EXTERNAL SIMPLE INTEGER PROCEDURE MKCUBE(REAL A,B,C);
EXTERNAL SIMPLE INTEGER PROCEDURE MKCYLN(REAL R,N,Z);
EXTERNAL SIMPLE INTEGER PROCEDURE MKBALL(REAL R,M,N);
COMMENT EXTERNAL DECLARATIONS FOR DISPLAY ROUTINES;
EXTERNAL SIMPLE PROCEDURE DPYSET(INTEGER ARRAY PTR);
EXTERNAL SIMPLE PROCEDURE DPYBIG(INTEGER SIZE);
EXTERNAL SIMPLE PROCEDURE DPYBRT(INTEGER SIZE);
EXTERNAL SIMPLE PROCEDURE AVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE AIVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE RVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE RIVECT(INTEGER X,Y);
EXTERNAL SIMPLE PROCEDURE DPYSST(STRING S);
EXTERNAL SIMPLE PROCEDURE DPYOUT(INTEGER POG);
EXTERNAL SIMPLE PROCEDURE DPYSTR(REFERENCE INTEGER TEXT);
EXTERNAL SIMPLE PROCEDURE DTYO(INTEGER BPTR);
EXTERNAL SIMPLE PROCEDURE OCTDPY(INTEGER X);
EXTERNAL SIMPLE PROCEDURE DECDPY(INTEGER X);
EXTERNAL SIMPLE PROCEDURE FLODPY(REAL X;INTEGER PLACES(4));
COMMENT GEM-NODE NAMES FOR LINKS AND DATA;
EXTERNAL SIMPLE INTEGER PROCEDURE CAR(INTEGER Q);
EXTERNAL SIMPLE INTEGER PROCEDURE CDR(INTEGER Q);
EXTERNAL SIMPLE INTEGER PROCEDURE DIP(INTEGER AC,Q);
EXTERNAL SIMPLE INTEGER PROCEDURE DAP(INTEGER AC,Q);
REQUIRE "⊂⊃⊂⊃" DELIMITERS;
COMMENT WORLD LOCUS;
DEFINE XWC(V)=⊂MEMORY[V-3,REAL]⊃;
DEFINE YWC(V)=⊂MEMORY[V-2,REAL]⊃;
DEFINE ZWC(V)=⊂MEMORY[V-1,REAL]⊃;
DEFINE AA(V)=⊂MEMORY[V-3,REAL]⊃;
DEFINE BB(V)=⊂MEMORY[V-2,REAL]⊃;
DEFINE CC(V)=⊂MEMORY[V-1,REAL]⊃;
DEFINE BBIT=⊂'1000000⊃;
COMMENT ROTATION MATRIX;
DEFINE IX(V)=⊂MEMORY[V+0,REAL]⊃;
DEFINE IY(V)=⊂MEMORY[V+1,REAL]⊃;
DEFINE IZ(V)=⊂MEMORY[V+2,REAL]⊃;
DEFINE JX(V)=⊂MEMORY[V+3,REAL]⊃;
DEFINE JY(V)=⊂MEMORY[V+4,REAL]⊃;
DEFINE JZ(V)=⊂MEMORY[V+5,REAL]⊃;
DEFINE KX(V)=⊂MEMORY[V+6,REAL]⊃;
DEFINE KY(V)=⊂MEMORY[V+7,REAL]⊃;
DEFINE KZ(V)=⊂MEMORY[V+8,REAL]⊃;
COMMENT PERSPECTIVE-PROJECTED LOCUS;
DEFINE XPP(V)=⊂MEMORY[V+4,REAL]⊃;
DEFINE YPP(V)=⊂MEMORY[V+5,REAL]⊃;
DEFINE ZPP(V)=⊂MEMORY[V+6,REAL]⊃;
DEFINE NFACE(Q)=⊂CAR(Q+1)⊃;DEFINE PFACE(Q)=⊂CDR(Q+1)⊃;
DEFINE NED(Q)=⊂CAR(Q+2)⊃;DEFINE PED(Q)=⊂CDR(Q+2)⊃;
DEFINE NVT(Q)=⊂CAR(Q+3)⊃;DEFINE PVT(Q)=⊂CDR(Q+3)⊃;
DEFINE DAD(Q)=⊂CAR(Q+4)⊃;DEFINE SON(Q)=⊂CDR(Q+4)⊃;
DEFINE BRO(Q)=⊂CAR(Q+5)⊃;DEFINE SIS(Q)=⊂CDR(Q+5)⊃;
DEFINE ALT(Q)=⊂CAR(Q+6)⊃;DEFINE ALT2(Q)=⊂CDR(Q+6)⊃;
DEFINE CW(Q)=⊂CAR(Q+7)⊃;DEFINE CCW(Q)=⊂CDR(Q+7)⊃;
DEFINE CAR8(Q)=⊂CAR(Q+8)⊃;DEFINE CDR8(Q)=⊂CDR(Q+8)⊃;
DEFINE NFACE$(A,Q)=⊂DIP(A,Q+1)⊃;DEFINE PFACE$(A,Q)=⊂DAP(A,Q+1)⊃;
DEFINE NED$(A,Q)=⊂DIP(A,Q+2)⊃;DEFINE PED$(A,Q)=⊂DAP(A,Q+2)⊃;
DEFINE NVT$(A,Q)=⊂DIP(A,Q+3)⊃;DEFINE PVT$(A,Q)=⊂DAP(A,Q+3)⊃;
REQUIRE UNSTACK_DELIMITERS;